[INFO] cloning repository https://github.com/fakeNetflix/twitter-repo-rpc-perf
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fakeNetflix/twitter-repo-rpc-perf" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfakeNetflix%2Ftwitter-repo-rpc-perf", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfakeNetflix%2Ftwitter-repo-rpc-perf'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2de82b3705322f470fba44cd31135ad91e694d88
[INFO] checking fakeNetflix/twitter-repo-rpc-perf against master#029c9e18dd1f4668e1d42bb187c1c263dfe20093 for pr-157562
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfakeNetflix%2Ftwitter-repo-rpc-perf" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/fakeNetflix/twitter-repo-rpc-perf
[INFO] finished tweaking git repo https://github.com/fakeNetflix/twitter-repo-rpc-perf
[INFO] tweaked toml for git repo https://github.com/fakeNetflix/twitter-repo-rpc-perf written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/fakeNetflix/twitter-repo-rpc-perf on toolchain 029c9e18dd1f4668e1d42bb187c1c263dfe20093
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+029c9e18dd1f4668e1d42bb187c1c263dfe20093" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/fakeNetflix/twitter-repo-rpc-perf already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+029c9e18dd1f4668e1d42bb187c1c263dfe20093" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded toml v0.5.1
[INFO] [stderr]   Downloaded rand_distr v0.2.1
[INFO] [stderr]   Downloaded hsl v0.1.1
[INFO] [stderr]   Downloaded tiny_http v0.6.2
[INFO] [stderr]   Downloaded cast v0.2.2
[INFO] [stderr]   Downloaded rand_xoshiro v0.1.0
[INFO] [stderr]   Downloaded chunked_transfer v0.3.1
[INFO] [stderr]   Downloaded criterion-plot v0.3.1
[INFO] [stderr]   Downloaded getrandom v0.1.7
[INFO] [stderr]   Downloaded ascii v0.8.7
[INFO] [stderr]   Downloaded evmap v4.2.3
[INFO] [stderr]   Downloaded tinytemplate v1.0.2
[INFO] [stderr]   Downloaded csv-core v0.1.6
[INFO] [stderr]   Downloaded hashbrown v0.3.1
[INFO] [stderr]   Downloaded criterion v0.2.11
[INFO] [stderr]   Downloaded regex-automata v0.1.8
[INFO] [stderr]   Downloaded mio v0.6.19
[INFO] [stderr]   Downloaded bstr v0.2.6
[INFO] [stderr]   Downloaded csv v1.1.1
[INFO] [stderr]   Downloaded dejavu v2.37.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5739fe4b2d14e693c4e9f1ea3d5888f4858a41f806f4c47268693dc7b39043af
[INFO] running `Command { std: "docker" "start" "5739fe4b2d14e693c4e9f1ea3d5888f4858a41f806f4c47268693dc7b39043af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5739fe4b2d14e693c4e9f1ea3d5888f4858a41f806f4c47268693dc7b39043af" "/opt/rustwide/cargo-home/bin/cargo" "+029c9e18dd1f4668e1d42bb187c1c263dfe20093" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5739fe4b2d14e693c4e9f1ea3d5888f4858a41f806f4c47268693dc7b39043af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5739fe4b2d14e693c4e9f1ea3d5888f4858a41f806f4c47268693dc7b39043af" "/opt/rustwide/cargo-home/bin/cargo" "+029c9e18dd1f4668e1d42bb187c1c263dfe20093" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.60
[INFO] [stderr]    Compiling autocfg v0.1.5
[INFO] [stderr]     Checking cfg-if v0.1.9
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]     Checking rand_core v0.4.0
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling serde v1.0.98
[INFO] [stderr]     Checking smallvec v0.6.10
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]     Checking rand_jitter v0.1.4
[INFO] [stderr]     Checking stable_deref_trait v1.1.1
[INFO] [stderr]     Checking lazy_static v1.3.0
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]    Compiling parking_lot_core v0.4.0
[INFO] [stderr]     Checking scopeguard v0.3.3
[INFO] [stderr]     Checking owning_ref v0.4.0
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]     Checking nodrop v0.1.13
[INFO] [stderr]     Checking arrayvec v0.4.11
[INFO] [stderr]    Compiling bitflags v1.1.0
[INFO] [stderr]     Checking getrandom v0.1.7
[INFO] [stderr]     Checking lock_api v0.1.5
[INFO] [stderr]     Checking ppv-lite86 v0.2.5
[INFO] [stderr]     Checking rand_core v0.5.0
[INFO] [stderr]    Compiling memoffset v0.5.1
[INFO] [stderr]     Checking iovec v0.1.2
[INFO] [stderr]     Checking logger v0.1.0 (/opt/rustwide/workdir/logger)
[INFO] [stderr]     Checking hashbrown v0.3.1
[INFO] [stderr]     Checking crossbeam-utils v0.6.6
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling memchr v2.2.1
[INFO] [stderr]     Checking c2-chacha v0.2.2
[INFO] [stderr]    Compiling build_const v0.2.1
[INFO] [stderr]    Compiling syn v0.15.42
[INFO] [stderr]     Checking rand_chacha v0.2.1
[INFO] [stderr]    Compiling ryu v1.0.0
[INFO] [stderr]    Compiling crc v1.8.1
[INFO] [stderr]     Checking rand v0.7.0
[INFO] [stderr]     Checking evmap v4.2.3
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking unicode-width v0.1.5
[INFO] [stderr]     Checking scopeguard v1.0.0
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking crossbeam-epoch v0.7.2
[INFO] [stderr]     Checking atty v0.2.13
[INFO] [stderr]     Checking vec_map v0.8.1
[INFO] [stderr]     Checking either v1.5.2
[INFO] [stderr]     Checking itoa v0.4.4
[INFO] [stderr]     Checking parking_lot v0.7.1
[INFO] [stderr]    Compiling rayon-core v1.5.0
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]     Checking crossbeam-deque v0.6.3
[INFO] [stderr]     Checking clap v2.33.0
[INFO] [stderr]     Checking crossbeam-queue v0.1.2
[INFO] [stderr]     Checking regex-automata v0.1.8
[INFO] [stderr]     Checking num_cpus v1.10.1
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]     Checking adler32 v1.0.3
[INFO] [stderr]     Checking csv-core v0.1.6
[INFO] [stderr]     Checking itertools v0.8.0
[INFO] [stderr]     Checking cast v0.2.2
[INFO] [stderr]     Checking same-file v1.0.5
[INFO] [stderr]     Checking walkdir v2.2.9
[INFO] [stderr]     Checking inflate v0.4.5
[INFO] [stderr]     Checking deflate v0.7.20
[INFO] [stderr]     Checking rayon v1.1.0
[INFO] [stderr]     Checking ordered-float v1.0.2
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking stb_truetype v0.2.6
[INFO] [stderr]     Checking rand_xoshiro v0.1.0
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]     Checking png v0.14.1
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]     Checking criterion-plot v0.3.1
[INFO] [stderr]     Checking rusttype v0.7.7
[INFO] [stderr]     Checking unicode-normalization v0.1.8
[INFO] [stderr]     Checking hsl v0.1.1
[INFO] [stderr]     Checking dejavu v2.37.0
[INFO] [stderr]     Checking percent-encoding v1.0.1
[INFO] [stderr]     Checking chrono v0.4.7
[INFO] [stderr]     Checking net2 v0.2.33
[INFO] [stderr]     Checking ascii v0.8.7
[INFO] [stderr]     Checking atomics v0.2.0 (/opt/rustwide/workdir/atomics)
[INFO] [stderr]     Checking bstr v0.2.6
[INFO] [stdout] warning: unused import: `self::atomic_i16::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use self::atomic_i16::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_i32::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use self::atomic_i32::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_i64::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use self::atomic_i64::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_i8::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use self::atomic_i8::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_isize::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use self::atomic_isize::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u16::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use self::atomic_u16::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u32::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use self::atomic_u32::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u64::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use self::atomic_u64::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u8::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use self::atomic_u8::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_usize::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub use self::atomic_usize::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking serde_json v1.0.40
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<bool>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_bool.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i16>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i16.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i32>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i32.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i64>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i64.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i8>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i8.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<isize>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_isize.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<*mut T>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_ptr.rs:47:20
[INFO] [stdout]    |
[INFO] [stdout] 47 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u16>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u16.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u32.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u64.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u8>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u8.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_usize.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> atomics/src/atomic_primitive/atomic_usize.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 166 |         if let Ok(value) = usize::try_from(value) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking datastructures v0.4.0 (/opt/rustwide/workdir/datastructures)
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> datastructures/src/lib.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use crate::heatmap::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ the name `Iter` in the type namespace is first re-exported here
[INFO] [stdout] 15 | pub use crate::histogram::*;
[INFO] [stdout]    |         ------------------- but the name `Iter` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking chunked_transfer v0.3.1
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]     Checking metrics v0.4.0 (/opt/rustwide/workdir/metrics)
[INFO] [stdout] warning: unexpected `cfg` condition value: `waterfall`
[INFO] [stdout]    --> metrics/src/recorder.rs:150:11
[INFO] [stdout]     |
[INFO] [stdout] 150 |     #[cfg(feature = "waterfall")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `waterfall` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ratelimiter v0.3.1 (/opt/rustwide/workdir/ratelimiter)
[INFO] [stderr]     Checking waterfall v0.4.0 (/opt/rustwide/workdir/waterfall)
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> waterfall/src/lib.rs:282:43
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout]     |                                           ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 282 -                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout] 282 +                     self.buffer[(sy + y)][sx + x] = other.buffer[sy][sx];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> waterfall/src/lib.rs:282:33
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout]     |                                 ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 282 -                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout] 282 +                     self.buffer[sy + y][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking csv v1.1.1
[INFO] [stderr]     Checking mio v0.6.19
[INFO] [stderr]     Checking codec v0.2.0 (/opt/rustwide/workdir/codec)
[INFO] [stderr]     Checking toml v0.5.1
[INFO] [stderr]     Checking rand_distr v0.2.1
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> codec/src/echo/mod.rs:56:43
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let crc_bytes: [u8; 4] = unsafe { transmute(crc_calc.to_be()) };
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 56 -         let crc_bytes: [u8; 4] = unsafe { transmute(crc_calc.to_be()) };
[INFO] [stdout] 56 +         let crc_bytes: [u8; 4] = unsafe { u32::to_ne_bytes(crc_calc.to_be()) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking buffer v0.1.0 (/opt/rustwide/workdir/buffer)
[INFO] [stderr]     Checking timer v0.1.2 (/opt/rustwide/workdir/timer)
[INFO] [stderr]     Checking url v1.7.2
[INFO] [stderr]     Checking tinytemplate v1.0.2
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> waterfall/src/lib.rs:282:43
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout]     |                                           ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 282 -                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout] 282 +                     self.buffer[(sy + y)][sx + x] = other.buffer[sy][sx];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> waterfall/src/lib.rs:282:33
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout]     |                                 ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 282 -                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout] 282 +                     self.buffer[sy + y][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `waterfall`
[INFO] [stdout]    --> metrics/src/recorder.rs:150:11
[INFO] [stdout]     |
[INFO] [stdout] 150 |     #[cfg(feature = "waterfall")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `waterfall` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> datastructures/src/lib.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use crate::heatmap::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ the name `Iter` in the type namespace is first re-exported here
[INFO] [stdout] 15 | pub use crate::histogram::*;
[INFO] [stdout]    |         ------------------- but the name `Iter` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling serde_derive v1.0.98
[INFO] [stdout] warning: unused import: `self::atomic_i16::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use self::atomic_i16::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_i32::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use self::atomic_i32::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_i64::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use self::atomic_i64::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_i8::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use self::atomic_i8::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_isize::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use self::atomic_isize::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u16::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use self::atomic_u16::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u32::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use self::atomic_u32::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u64::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use self::atomic_u64::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u8::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use self::atomic_u8::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_usize::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub use self::atomic_usize::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&[u8]` instead of cloning the inner type
[INFO] [stdout]    --> buffer/src/lib.rs:225:32
[INFO] [stdout]     |
[INFO] [stdout] 225 |             let check = message.clone();
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<bool>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_bool.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i16>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i16.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i32>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i32.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i64>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i64.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i8>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i8.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<isize>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_isize.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<*mut T>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_ptr.rs:47:20
[INFO] [stdout]    |
[INFO] [stdout] 47 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u16>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u16.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u32.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u64.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u8>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u8.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_usize.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> atomics/src/atomic_primitive/atomic_usize.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 166 |         if let Ok(value) = usize::try_from(value) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tiny_http v0.6.2
[INFO] [stderr]     Checking criterion v0.2.11
[INFO] [stderr]     Checking rpc-perf v3.1.0-pre (/opt/rustwide/workdir/rpc-perf)
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/general.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/general.rs:265:23
[INFO] [stdout]     |
[INFO] [stdout] 265 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]     |                       ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/general.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 | #[derive(Clone, Deserialize, Debug)]
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:75:23
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]    |                       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:83:24
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/mod.rs:192:24
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/mod.rs:214:24
[INFO] [stdout]     |
[INFO] [stdout] 214 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/general.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/general.rs:265:23
[INFO] [stdout]     |
[INFO] [stdout] 265 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]     |                       ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/general.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 | #[derive(Clone, Deserialize, Debug)]
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:75:23
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]    |                       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:83:24
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/mod.rs:192:24
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/mod.rs:214:24
[INFO] [stdout]     |
[INFO] [stdout] 214 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/common.rs:39:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |     codec: Box<Codec>,
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     codec: Box<dyn Codec>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/plain_client.rs:64:41
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn session(&self, token: Token) -> &Session {
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn session(&self, token: Token) -> &dyn Session {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/mod.rs:90:41
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn session(&self, token: Token) -> &Session;
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn session(&self, token: Token) -> &dyn Session;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/plain_client.rs:68:53
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn session_mut(&mut self, token: Token) -> &mut Session {
[INFO] [stdout]    |                                                     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn session_mut(&mut self, token: Token) -> &mut dyn Session {
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/mod.rs:91:53
[INFO] [stdout]    |
[INFO] [stdout] 91 |     fn session_mut(&mut self, token: Token) -> &mut Session;
[INFO] [stdout]    |                                                     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 91 |     fn session_mut(&mut self, token: Token) -> &mut dyn Session;
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/common.rs:39:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |     codec: Box<Codec>,
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     codec: Box<dyn Codec>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/plain_client.rs:64:41
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn session(&self, token: Token) -> &Session {
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn session(&self, token: Token) -> &dyn Session {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/mod.rs:90:41
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn session(&self, token: Token) -> &Session;
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn session(&self, token: Token) -> &dyn Session;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/plain_client.rs:68:53
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn session_mut(&mut self, token: Token) -> &mut Session {
[INFO] [stdout]    |                                                     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn session_mut(&mut self, token: Token) -> &mut dyn Session {
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/mod.rs:91:53
[INFO] [stdout]    |
[INFO] [stdout] 91 |     fn session_mut(&mut self, token: Token) -> &mut Session;
[INFO] [stdout]    |                                                     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 91 |     fn session_mut(&mut self, token: Token) -> &mut dyn Session;
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> rpc-perf/src/main.rs:153:38
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<Codec>, _config: &Config) -> Box<Client> {
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<dyn Codec>, _config: &Config) -> Box<Client> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> rpc-perf/src/main.rs:153:71
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<Codec>, _config: &Config) -> Box<Client> {
[INFO] [stdout]     |                                                                       ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<Codec>, _config: &Config) -> Box<dyn Client> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/common.rs:51:38
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new(id: usize, codec: Box<Codec>) -> Self {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new(id: usize, codec: Box<dyn Codec>) -> Self {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/plain_client.rs:36:38
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(id: usize, codec: Box<Codec>) -> PlainClient {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(id: usize, codec: Box<dyn Codec>) -> PlainClient {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> rpc-perf/src/main.rs:153:38
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<Codec>, _config: &Config) -> Box<Client> {
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<dyn Codec>, _config: &Config) -> Box<Client> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> rpc-perf/src/main.rs:153:71
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<Codec>, _config: &Config) -> Box<Client> {
[INFO] [stdout]     |                                                                       ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<Codec>, _config: &Config) -> Box<dyn Client> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/common.rs:51:38
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new(id: usize, codec: Box<Codec>) -> Self {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new(id: usize, codec: Box<dyn Codec>) -> Self {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/plain_client.rs:36:38
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(id: usize, codec: Box<Codec>) -> PlainClient {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(id: usize, codec: Box<dyn Codec>) -> PlainClient {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> rpc-perf/src/main.rs:189:28
[INFO] [stdout]     |
[INFO] [stdout] 189 |         let mut codec: Box<Codec> = match config.protocol() {
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 189 |         let mut codec: Box<dyn Codec> = match config.protocol() {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> rpc-perf/src/main.rs:189:28
[INFO] [stdout]     |
[INFO] [stdout] 189 |         let mut codec: Box<Codec> = match config.protocol() {
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 189 |         let mut codec: Box<dyn Codec> = match config.protocol() {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hitrate` is never read
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct Keyspace {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 89 |     hitrate: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Keyspace` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tls_key`, `tls_cert`, and `tls_ca` are never read
[INFO] [stdout]   --> rpc-perf/src/config/general.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct General {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     tls_key: Option<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 39 |     tls_cert: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 40 |     tls_ca: Option<String>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `General` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^----------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Config`
[INFO] [stdout] 37 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ------ `Config` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:75:23
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]    |                       ^----------
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       `Deserialize` is not local
[INFO] [stdout]    |                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Action`
[INFO] [stdout] ...
[INFO] [stdout] 78 | pub enum Action {
[INFO] [stdout]    |          ------ `Action` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:83:24
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^----------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Keyspace`
[INFO] [stdout] 84 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 85 | pub struct Keyspace {
[INFO] [stdout]    |            -------- `Keyspace` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> rpc-perf/src/config/mod.rs:192:24
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^----------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Deserialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Command`
[INFO] [stdout] 193 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 194 | pub struct Command {
[INFO] [stdout]     |            ------- `Command` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> rpc-perf/src/config/mod.rs:214:24
[INFO] [stdout]     |
[INFO] [stdout] 214 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^----------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Deserialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Value`
[INFO] [stdout] 215 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 216 | struct Value {
[INFO] [stdout]     |        ----- `Value` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rpc-perf/src/config/general.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^----------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_General`
[INFO] [stdout] 18 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 19 | pub struct General {
[INFO] [stdout]    |            ------- `General` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> rpc-perf/src/config/general.rs:265:23
[INFO] [stdout]     |
[INFO] [stdout] 265 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]     |                       ^----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `Deserialize` is not local
[INFO] [stdout]     |                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Protocol`
[INFO] [stdout] ...
[INFO] [stdout] 268 | pub enum Protocol {
[INFO] [stdout]     |          -------- `Protocol` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> rpc-perf/src/config/general.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 | #[derive(Clone, Deserialize, Debug)]
[INFO] [stdout]     |                 ^----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LevelDef`
[INFO] [stdout] ...
[INFO] [stdout] 285 | enum LevelDef {
[INFO] [stdout]     |      -------- `LevelDef` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hitrate` is never read
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct Keyspace {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 89 |     hitrate: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Keyspace` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tls_key`, `tls_cert`, and `tls_ca` are never read
[INFO] [stdout]   --> rpc-perf/src/config/general.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct General {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     tls_key: Option<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 39 |     tls_cert: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 40 |     tls_ca: Option<String>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `General` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^----------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Config`
[INFO] [stdout] 37 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ------ `Config` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:75:23
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]    |                       ^----------
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       `Deserialize` is not local
[INFO] [stdout]    |                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Action`
[INFO] [stdout] ...
[INFO] [stdout] 78 | pub enum Action {
[INFO] [stdout]    |          ------ `Action` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:83:24
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^----------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Keyspace`
[INFO] [stdout] 84 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 85 | pub struct Keyspace {
[INFO] [stdout]    |            -------- `Keyspace` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> rpc-perf/src/config/mod.rs:192:24
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^----------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Deserialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Command`
[INFO] [stdout] 193 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 194 | pub struct Command {
[INFO] [stdout]     |            ------- `Command` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> rpc-perf/src/config/mod.rs:214:24
[INFO] [stdout]     |
[INFO] [stdout] 214 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^----------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Deserialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Value`
[INFO] [stdout] 215 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 216 | struct Value {
[INFO] [stdout]     |        ----- `Value` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rpc-perf/src/config/general.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^----------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_General`
[INFO] [stdout] 18 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 19 | pub struct General {
[INFO] [stdout]    |            ------- `General` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> rpc-perf/src/config/general.rs:265:23
[INFO] [stdout]     |
[INFO] [stdout] 265 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]     |                       ^----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `Deserialize` is not local
[INFO] [stdout]     |                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Protocol`
[INFO] [stdout] ...
[INFO] [stdout] 268 | pub enum Protocol {
[INFO] [stdout]     |          -------- `Protocol` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> rpc-perf/src/config/general.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 | #[derive(Clone, Deserialize, Debug)]
[INFO] [stdout]     |                 ^----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LevelDef`
[INFO] [stdout] ...
[INFO] [stdout] 285 | enum LevelDef {
[INFO] [stdout]     |      -------- `LevelDef` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> codec/src/echo/mod.rs:56:43
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let crc_bytes: [u8; 4] = unsafe { transmute(crc_calc.to_be()) };
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 56 -         let crc_bytes: [u8; 4] = unsafe { transmute(crc_calc.to_be()) };
[INFO] [stdout] 56 +         let crc_bytes: [u8; 4] = unsafe { u32::to_ne_bytes(crc_calc.to_be()) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.22s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.2.11
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "5739fe4b2d14e693c4e9f1ea3d5888f4858a41f806f4c47268693dc7b39043af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5739fe4b2d14e693c4e9f1ea3d5888f4858a41f806f4c47268693dc7b39043af", kill_on_drop: false }`
[INFO] [stdout] 5739fe4b2d14e693c4e9f1ea3d5888f4858a41f806f4c47268693dc7b39043af
